Trustworthy Tools for Trustworthy Programs: Automatic Verification of Mutually Recursive Procedures
نویسندگان
چکیده
Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our work, we define and rigorously prove correct a VCG tool within the HOL theorem proving system, for a standard imperative language, notably containing mutually recursive procedures and expressions with side effects. Starting from a structural operational semantics of this programming language, we prove as theorems the axioms and rules of inference of a Hoare-style axiomatic semantics, verifying their soundness. This axiomatic semantics is then used to define and prove correct a VCG tool for this language. Finally, this verified VCG is applied to example programs to verify their partial correctness.
منابع مشابه
Secure mechanical verification of mutually recursive procedures
The veriication of programs that contain mutually recursive procedures is a diicult task, and one which has not been satisfactorily addressed in the literature. Published proof rules have been later discovered to be unsound. Veriication Condition Generator (VCG) tools have been eeective in partially automating the veriication of programs, but in the past these VCG tools have in general not them...
متن کاملTrustworthy Tools for Trustworthy Programs: A Verified Verification Condition Generator
Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our work, we define and rigorously prove correct a VCG tool within the HOL theorem proving system, for a s...
متن کاملVerified Resource Guarantees for Heap Manipulating Programs
Program properties that are automatically inferred by static analysis tools are generally not considered to be completely trustworthy, unless the tool implementation or the results are formally verified. Here we focus on the formal verification of resource guarantees inferred by automatic cost analysis. Resource guarantees ensure that programs run within the indicated amount of resources which ...
متن کاملTrustworthy decompilation: extracting models of machine code inside an ITP
Modern processors support a large numbers of instructions and a multitude of features; as a result, detailed formal models of real instruction set architectures (ISAs) are long and hard to understand. Established approaches for proving functional properties on top of these models tie proofs to a specific model and require expert knowledge of the underlying model and substantial manual effort of...
متن کاملTrustworthy Construction Approach of BPR Software System Based on Semantic Model Verification
Addressing to improve the trustworthiness of Business Process Re-engineering (BPR) system, this paper proposes a trustworthy construction approach to solve the problem mentioned above. Firstly, we analyze related literatures about the topic, we realize that main reason causing to reduce trustworthiness of BPR system is due to break of trustworthy connectivity between front configuration tools a...
متن کامل